package zack.project.domain.activity.service;

import zack.project.domain.activity.model.valobj.ActivitySkuStockKeyVO;

/**
 * @author A1793
 */
public interface IRaffleActivitySkuStockService {
    /**
     * 在延时队列里获取一条消息进行消费
     * @return
     * @throws InterruptedException
     */
    ActivitySkuStockKeyVO takeQueueValue() throws InterruptedException;

    /**
     * 当redis里的sku库存为0时，清空延时队列
     */
    void clearQueueValue();

    /**
     * 更新活动商品库存
     * @param sku
     */
    void updateActivitySkuStock(Long sku);

    /**
     * 清空数据库的商品库存
     * @param sku
     */
    void clearActivitySkuStock(Long sku);
}
